Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[SDK] Use sdk_start_ts for MetricData start_ts for instruments having cumulative aggregation temporality. #2086

Merged
merged 2 commits into from
Apr 12, 2023

Conversation

davidmandle
Copy link
Contributor

@davidmandle davidmandle commented Apr 7, 2023

Changes

The OpenTelemetry data model for metrics states that "with cumulative aggregation temporality ... we expect to report the full sum since 'start'", and the accompanying diagram illustrates the same start_time present in each report.

However, prior to this change, cumulative metrics were being reported with a start time equal to the last report time. This broke compatibility with services expecting the documented behavior. (For example, without this change, Counter metrics submitted to the Google Cloud Monitoring API via the googlecloudexporter are not represented correctly).

For significant contributions please make sure you have completed the following items:

  • CHANGELOG.md updated for non-trivial changes
  • Unit tests have been added
  • Changes in public API reviewed

@davidmandle davidmandle requested a review from a team April 7, 2023 08:25
@codecov
Copy link

codecov bot commented Apr 7, 2023

Codecov Report

Merging #2086 (de77e9b) into main (efb1a26) will decrease coverage by 0.02%.
The diff coverage is 100.00%.

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             main    #2086      +/-   ##
==========================================
- Coverage   87.19%   87.17%   -0.02%     
==========================================
  Files         166      166              
  Lines        4784     4784              
==========================================
- Hits         4171     4170       -1     
- Misses        613      614       +1     
Impacted Files Coverage Δ
sdk/src/metrics/state/temporal_metric_storage.cc 98.31% <100.00%> (ø)

... and 1 file with indirect coverage changes

Copy link
Member

@lalitb lalitb left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the fix.

@davidmandle
Copy link
Contributor Author

Thanks

Copy link
Member

@marcalff marcalff left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks for the fix.

@lalitb lalitb added the ok-to-merge The PR is ok to merge (has two approves or raised by a maintainer/approver and has one approve) label Apr 12, 2023
@marcalff marcalff merged commit e71e28c into open-telemetry:main Apr 12, 2023
@marcalff marcalff changed the title Use sdk_start_ts for MetricData start_ts for instruments having cumulative aggregation temporality. [SDK] Use sdk_start_ts for MetricData start_ts for instruments having cumulative aggregation temporality. Apr 12, 2023
ays7 added a commit to ays7/opentelemetry-cpp that referenced this pull request May 18, 2023
* commit '7887d32da60f54984a597abccbb0c883f3a51649': (82 commits)
  [RELEASE] Release version 1.9.0 (open-telemetry#2091)
  Use sdk_start_ts for MetricData start_ts for instruments having cumulative aggregation temporality. (open-telemetry#2086)
  [SEMANTIC CONVENTIONS] Upgrade to version 1.20.0 (open-telemetry#2088)
  [EXPORTER] Add OTLP HTTP SSL support (open-telemetry#1793)
  Make Windows build environment parallel (open-telemetry#2080)
  make some hints (open-telemetry#2078)
  Make some targets parallel in CI pipeline (open-telemetry#2076)
  [Metrics SDK] Implement Forceflush for Periodic Metric Reader (open-telemetry#2064)
  Upgraded semantic conventions to 1.19.0 (open-telemetry#2017)
  Bump actions/stale from 7 to 8 (open-telemetry#2070)
  Include directory path added for Zipkin exporter example (open-telemetry#2069)
  Ignore more warning of generated protobuf files than not included in `-Wall` and `-Wextra` (open-telemetry#2067)
  Add `ForceFlush` for all `LogRecordExporter`s and `SpanExporter`s. (open-telemetry#2000)
  Remove unused 'alerting' section from prometheus.yml in examples (open-telemetry#2055)
  Clean warnings in ETW exporters (open-telemetry#2063)
  Fix default value of `OPENTELEMETRY_INSTALL_default`. (open-telemetry#2062)
  [EXPORTER] GRPC endpoint scheme should take precedence over OTEL_EXPORTER_OTLP_TRACES_INSECURE (open-telemetry#2060)
  Fix view names in Prometheus example (open-telemetry#2034)
  Fix some docs typo (open-telemetry#2057)
  Checking indices before dereference (open-telemetry#2040)
  ...

# Conflicts:
#	exporters/ostream/CMakeLists.txt
#	sdk/src/metrics/state/metric_collector.cc
#	sdk/src/metrics/state/temporal_metric_storage.cc
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ok-to-merge The PR is ok to merge (has two approves or raised by a maintainer/approver and has one approve)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants